package database;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Attribute.java
 * Classe abstraite modelisant un attribut de table
 * @author Aubry Pirian
 * @version 1.0
 */
public abstract class Attribute {
	
	/**
	 * Attributs
	 */
	protected String name;	// nom de l'attribut
	
	/**
	 * Constructeur d'Attribut
	 * @param name : nom de l'attribut
	 */
	public Attribute(String name) throws NoSuchFieldException {
		if (name==null || name.length()==0) throw new NoSuchFieldException("Le nom de l'attribut ne peut pas être vide.");
		Pattern pattern = Pattern.compile("^(\\w*)$");
		Matcher matcher = pattern.matcher(name);
		if (!matcher.find()) throw new NoSuchFieldException("Format de nom d'attribut incorrect.");
		this.name = name;
	}
	
	/**
	 * Accesseur du nom de l'attribut
	 */
	public String getName() { return this.name; }
	
}